package com.guochaojava.service;

import com.github.pagehelper.PageInfo;
import com.guochaojava.model.Record;
import com.guochaojava.param.GameEndParam;

import java.util.List;

/**
 * 比赛记录接口
 *
 * @author guochao
 */
public interface RecordService {
    /**
     * 根据主键删除记录
     *
     * @param id 主键id
     * @return sql影响行数
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 新增记录
     *
     * @param record 记录
     * @return sql影响行数
     */
    int insertSelective(GameEndParam record);

    /**
     * 根据主键查找记录
     *
     * @param id 主键id
     * @return 查找记录
     */
    Record selectByPrimaryKey(Integer id);

    /**
     * 根据主键更新记录
     *
     * @param record 记录包含主键
     * @return sql影响行数
     */
    int updateByPrimaryKeySelective(Record record);

    /**
     * 确认比赛
     *
     * @param id     记录id
     * @param formId 小程序formid
     * @return sql影响行数
     */
    int affirm(Integer id, String formId);

    /**
     * 阅读消息
     *
     * @param id 记录id
     * @return 记录对象
     */
    Record read(Integer id);

    /**
     * 根据对手id查询记录
     *
     * @param id 对手id
     * @return 记录列表
     */
    List<Record> selectByRivalId(Integer id);

    /**
     * 我的比赛记录
     *
     * @param id       主键id
     * @param pageNum  页码
     * @param pageSize 每页大小
     * @return 列表对象
     */
    PageInfo<Record> myRecord(Integer id, Integer pageNum, Integer pageSize);

    /**
     * 根据比赛详情id查询记录
     *
     * @param id 比赛详情id
     * @return 记录
     */
    Record selectRivalDetailById(Integer id);

    /**
     * 阅读标识
     *
     * @param id 消息id
     * @return 是否阅读结果
     */
    boolean readFlag(Integer id);
}
